package com.winhxd.b2c.product.dao;

import com.winhxd.b2c.common.domain.product.condition.ProductStockSkuCondition;
import com.winhxd.b2c.common.domain.product.model.ProductPriceSku;
import com.winhxd.b2c.common.domain.product.vo.PriceProgramIdVO;
import com.winhxd.b2c.common.domain.product.vo.ProductSkuPriceVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author luosixiang
 */
public interface ProductPriceSkuMapper {
    /**
       *  根据主键删除
       * @author luosixiang
       * @date 15:10 2019/1/18
       * @param id
       * @return int
       **/

    int deleteByPrimaryKey(Long id);

    /**
       *  新增
       * @author luosixiang
       * @date 15:10 2019/1/18
       * @param record
       * @return int
       **/

    int insert(ProductPriceSku record);

    /**
       *  新增
       * @author luosixiang
       * @date 15:10 2019/1/18
       * @param record
       * @return int
       **/

    int insertSelective(ProductPriceSku record);

    /**
       *  根据主键查询
       * @author luosixiang
       * @date 15:11 2019/1/18
       * @param id
       * @return com.winhxd.b2c.common.domain.product.model.ProductPriceSku
       **/

    ProductPriceSku selectByPrimaryKey(Long id);

    /**
       *  条件查询
       * @author luosixiang
       * @date 15:11 2019/1/18
       * @param record
       * @return java.util.List<com.winhxd.b2c.common.domain.product.model.ProductPriceSku>
       **/

    List<ProductPriceSku> selectByModel(ProductPriceSku record);

    /**
       *  根据主键修改
       * @author luosixiang
       * @date 15:11 2019/1/18
       * @param record
       * @return int
       **/

    int updateByPrimaryKeySelective(ProductPriceSku record);

    /**
       *  根据主键修改
       * @author luosixiang
       * @date 15:11 2019/1/18
       * @param record
       * @return int
       **/

    int updateByPrimaryKey(ProductPriceSku record);

    /**
     * 删除价格方案sku
     * @param id
     * @return
     */
    int deleteBypriceProgramId(Long id);

    /**
     * 查询sku价格
     * @param spuId
     * @param priceProgramId
     * @return List<ProductSkuPriceVO>
     */
    List<ProductSkuPriceVO> selectSkuPriceBySpuId(@Param("spuId") Long spuId, @Param("priceProgramId") Long priceProgramId);

    /**
       *  根据spuid查询
       * @author luosixiang
       * @date 15:14 2019/1/18
       * @param spuId
       * @return java.util.List<com.winhxd.b2c.common.domain.product.vo.ProductSkuPriceVO>
       **/

    List<ProductSkuPriceVO> selectSkuPriceBySpuId(Long spuId);

    /**
     * 通过skuid查询PriceProgramId
     * @author cuiyueqiang
     * @date 2019/1/15 11:00
     * @param skuIdList
     * @return List<PriceProgramIdVO>
     **/
    List<PriceProgramIdVO> selectPriceProgramIdByskuId(@Param("skuIdList") List<ProductStockSkuCondition> skuIdList);

}